#获取当前工作路径
TOP_DIR:=$(CURDIR)

$(info "SRCS:$(TOP_DIR)")

#设置目标名
TARGET:=I2CLed

#设置源文件目录
SRC_PATH:=$(TOP_DIR)/src

#设置编译目录
BUILD_PATH:=$(TOP_DIR)/build

#设置编译临时目录
OBJ_PATH:=$(BUILD_PATH)/temp

#设置编译最终文件目录
BIN_PATH:=$(BUILD_PATH)/bin

#获取源文件目录下所有c文件列表
SRCS := $(shell find ${SRC_PATH} -name *.c) 

# DEL:
# 	rm   $(SRCS:.c=.o)
# DEL:
# 	rm ${SRCS_O}



# $(info "SRCS:$(SRCS)")
# $(info " $(SRCS:.c=.o)")


# 编译标志
CFLAGS = -Wall -g

# 资源路径
CFLAGS += \
	-I${SRC_PATH}/screen \
	-I${SRC_PATH}/examples 

# 链接库
LDLIBS = -lwiringPi 
 

 

# $@  表示目标文件
# $^  表示所有的依赖文件
# $<  表示第一个依赖文件
# $?  表示比目标还要新的依赖文件列表

# -c 只编译不链接
# -D 添加宏 ( -D OPEN_PRINTF_DEBUG)
# -o 指定输出文件名
# -g 可执行程序包含调试信息
# -O3是大写字母O，不是数字0哦。意思是开启编译优化，等级为三。
# -shared 如果想创建一个动态链接库，可以使用 gcc的-shared选项。输入文件可以是源文件、汇编文件或者目标文件。
# -l（小写的l）参数就是用来指定程序要链接的库
# -L参数跟着的是库文件所在的目录名

# 编译所有源文件
$(TARGET): $(SRCS:.c=.o)
	gcc $(CFLAGS) $^ -o $@  $(LDLIBS)


 
# 通过模式规则生成.o文件
%.o: %.c
	gcc $(CFLAGS) -c $< -o $@

 
# 清理目标文件和可执行文件
clean:
	rm   $(TARGET) $(SRCS:.c=.o)

